Skip to content

ci: fix coin-matrix guard path - #47

Merged
frstrtr merged 1 commit into
masterfrom
ci-steward/fix-coin-matrix-guard-path
May 30, 2026
Merged

ci: fix coin-matrix guard path#47
frstrtr merged 1 commit into
masterfrom
ci-steward/fix-coin-matrix-guard-path

Conversation

@frstrtr

@frstrtr frstrtr commented May 30, 2026

Copy link
Copy Markdown
Owner

What

One-line fix to the source-presence guard in .github/workflows/coin-matrix.yml.

The guard checked for src/c2pool/main_<coin>.cpp, but the actual on-disk
directory contract is src/impl/<coin>/main_<coin>.cpp (confirmed against
src/impl/dash/main_dash.cpp in the dash session). The wrong path matched
nothing on every branch, so the guard set exists=0 for all four coins and
silently skipped every build/smoke step.

-          if [ -f "src/c2pool/main_${{ matrix.coin }}.cpp" ] && [ -d "src/impl/${{ matrix.coin }}" ]; then
+          if [ -f "src/impl/${{ matrix.coin }}/main_${{ matrix.coin }}.cpp" ] && [ -d "src/impl/${{ matrix.coin }}" ]; then

Why it matters

PR #45's coin-matrix went green by accident: every job no-op'd through
the guard rather than actually building anything. The matrix was providing
zero real coverage. With the corrected path, each coin's job activates the
moment its src/impl/<coin>/main_<coin>.cpp split lands, which is the whole
point of the forward-compatible guard.

No build behavior changes on master today (the splits haven't landed yet),
so this stays green until a coin's source is actually present — at which
point it will start building for real.

Scope

  • One-line change. No other edits.

The source-presence guard checked src/c2pool/main_<coin>.cpp, but the
on-disk directory contract is src/impl/<coin>/main_<coin>.cpp (confirmed
against src/impl/dash/main_dash.cpp). The old path matched nothing, so
the guard silently skipped all four coins — PR #45's matrix went green
because every job no-op'd, not because anything built.

Point the guard at src/impl/<coin>/main_<coin>.cpp so each coin's job
activates when its split actually lands.
@frstrtr
frstrtr merged commit bfdb355 into master May 30, 2026
12 of 13 checks passed
frstrtr added a commit that referenced this pull request Jun 16, 2026
Add the dgb OBJECT lib (target: dgb) to src/impl/dgb/CMakeLists.txt under
COIN_DGB, mirroring the ltc OBJECT lib that the B1 surface was ported from.
The B1 sharechain-verify surface (share_types/share/share_tracker/
share_check/share_messages/redistribute) is header-only, so b1_smoke.cpp is
added as the sole compile unit, giving the surface a whole-target build gate
(per-coin dgb smoke). Real pool-layer TUs replace it as they land.

Per-coin isolation invariant preserved: dgb-tree-only scaffolding, no change
to the per-coin source-presence guards (PR #47).
frstrtr added a commit that referenced this pull request Jul 6, 2026
Add dgb-phase-b-smoke.yml + tests/gates/dgb_phase_b_smoke.sh: a network-free
per-coin smoke that builds the DGB Phase-B pillar targets (block assembly,
witness commitment, mempool ingest, won-block reconstruction, header
ingest/sample-build, share) and runs their gtest suites by name via ctest -R,
with a false-green empty-suite guard. Presence-gated on the DGB sources so it
neutral-skips on branches/coins lacking them. Fenced: no coin-matrix.yml /
build.yml / CMake edits; PR #47 source guard untouched.
frstrtr added a commit that referenced this pull request Jul 6, 2026
The Phase-B smoke gate configured with -DBUILD_TESTING=ON only; the dgb
test subtree is gated on if(COIN_DGB) (src/impl/dgb/CMakeLists.txt:54),
so the pillar targets (dgb_share_test etc.) never existed and the build
failed with "No rule to make target dgb_share_test". Per the CMake
contract (dgb/CMakeLists.txt:17-20) COIN_DGB is required to build the
test targets; add it to the gate configure. No CMake/build.yml/coin-matrix
edit — PR #47 source guard untouched.
frstrtr added a commit that referenced this pull request Jul 6, 2026
* ci(dgb): Phase-B per-coin smoke — build+ctest pillar gtests

Add dgb-phase-b-smoke.yml + tests/gates/dgb_phase_b_smoke.sh: a network-free
per-coin smoke that builds the DGB Phase-B pillar targets (block assembly,
witness commitment, mempool ingest, won-block reconstruction, header
ingest/sample-build, share) and runs their gtest suites by name via ctest -R,
with a false-green empty-suite guard. Presence-gated on the DGB sources so it
neutral-skips on branches/coins lacking them. Fenced: no coin-matrix.yml /
build.yml / CMake edits; PR #47 source guard untouched.

* ci(dgb): configure smoke with -DCOIN_DGB=ON so test subtree builds

The Phase-B smoke gate configured with -DBUILD_TESTING=ON only; the dgb
test subtree is gated on if(COIN_DGB) (src/impl/dgb/CMakeLists.txt:54),
so the pillar targets (dgb_share_test etc.) never existed and the build
failed with "No rule to make target dgb_share_test". Per the CMake
contract (dgb/CMakeLists.txt:17-20) COIN_DGB is required to build the
test targets; add it to the gate configure. No CMake/build.yml/coin-matrix
edit — PR #47 source guard untouched.

---------

Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant